<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>原型</title>
</head>

<body>
    <!-- 
        1. 函数的prototype属性
            每个函数都有一个prototype属性，它默认指向一个Object空对象（即称为：源性对象）
            原型对象中有一个属性constructor，它指向函数对象
        2. 给原型对象添加属性（一般都是方法）
            作用：函数的所有实例对象自动拥有原型中的属性（方法）
     -->
    <script>
        //  打印Date的原型对象
        console.log(Date.prototype)
        function Fn() {

        }
        // 默认指向Object空对象
        console.log(Fn.prototype);
        // 源性对象中有一个属性constructor，指向函数对象
        console.log(Date.prototype.constructor === Date)
        console.log(Fn.prototype.constructor === Fn)
        // 添加属性
        Fn.prototype.test = function () {
            console.log('test')
        }
        let fn = new Fn()
        fn.test()
    </script>
</body>

</html>